// import { PropType } from 'vue'
// import {
//   BwStyleAlignItemsEnum,
//   BwStyleBackgroundAttachmentEnum,
//   BwStyleBackgroundRepeatEnum,
//   BwStyleBackgroundSizeEnum,
//   BwStyleBorderStyleEnum,
//   BwStyleCursorEnum,
//   BwStyleDisplayEnum,
//   BwStyleFlexDirectionEnum,
//   BwStyleFontStyleEnum,
//   BwStyleJustifyContentEnum,
//   BwStyleTextAlignEnum,
//   BwStyleTextDecorationEnum,
// } from '../enum'

export const BwStyleBaseProps = {
  /** 宽度 */
  width: {
    type: [String],
  },

  /** 高度 */
  height: {
    type: [String],
  },

  /** 显示 */
  display: {
    // type: [String] as PropType<BwStyleDisplayEnum>,
    type: [String],
  },

  /** flex-grow */
  flexGrow: {
    type: [Number],
  },

  /** 不透明度 */
  opacity: {
    type: [Number],
  },

  /** 鼠标手势 */
  cursor: {
    // type: [String] as PropType<BwStyleCursorEnum>,
    type: [String],
  },
}

/** 字体相关样式属性 */
export const BwStyleFontProps = {
  /** 字体 */
  fontFamily: {
    type: [String],
  },
  /** 字重 */
  fontWeight: {
    type: [String, Number],
  },
  /** 字体样式 */
  fontStyle: {
    // type: [String] as PropType<BwStyleFontStyleEnum>,
    type: [String],
  },
  /** 颜色 */
  color: {
    type: [String],
  },
  /** 字体大小 */
  fontSize: {
    type: [String],
  },
  /** 行高 */
  lineHeight: {
    type: [String],
  },
  /** 对齐 */
  textAlign: {
    // type: [String] as PropType<BwStyleTextAlignEnum>,
    type: [String],
  },
  /** 修饰 */
  textDecoration: {
    // type: [String] as PropType<BwStyleTextDecorationEnum>,
    type: [String],
  },
}

/** 弹性盒子相关样式属性 */
export const BwStyleFlexProps = {
  /** 主轴方向 */
  flexDirection: {
    // type: [String] as PropType<BwStyleFlexDirectionEnum>,
    type: [String],
  },
  /** 侧轴（纵轴）方向上的对齐方式 */
  alignItems: {
    // type: [String] as PropType<BwStyleAlignItemsEnum>,
    type: [String],
  },
  /** 主轴上的子元素排列方式 */
  justifyContent: {
    // type: [String] as PropType<BwStyleJustifyContentEnum>,
    type: [String],
  },
}

/** 外边距相关样式属性 */
export const BwStyleMarginProps = {
  /** 左外边距 */
  marginLeft: {
    type: [String],
  },
  /** 上外边距 */
  marginTop: {
    type: [String],
  },
  /** 右外边距 */
  marginRight: {
    type: [String],
  },
  /** 下外边距 */
  marginBottom: {
    type: [String],
  },
}

/** 内边距相关样式属性 */
export const BwStylePaddingProps = {
  /** 左内边距 */
  paddingLeft: {
    type: [String],
  },
  /** 上内边距 */
  paddingTop: {
    type: [String],
  },
  /** 右内边距 */
  paddingRight: {
    type: [String],
  },
  /** 下内边距 */
  paddingBottom: {
    type: [String],
  },
}

/** 边框相关样式属性 */
export const BwStyleBorderProps = {
  /** 边框左 线样式 */
  borderLeftStyle: {
    // type: [String] as PropType<BwStyleBorderStyleEnum>,
    type: [String],
  },
  /** 边框左 宽度 */
  borderLeftWidth: {
    type: [String],
  },
  /** 边框左 颜色 */
  borderLeftColor: {
    type: [String],
  },
  /** 边框上 线样式 */
  borderTopStyle: {
    // type: [String] as PropType<BwStyleBorderStyleEnum>,
    type: [String],
  },
  /** 边框上 宽度 */
  borderTopWidth: {
    type: [String],
  },
  /** 边框上 颜色 */
  borderTopColor: {
    type: [String],
  },
  /** 边框右 线样式 */
  borderRightStyle: {
    // type: [String] as PropType<BwStyleBorderStyleEnum>,
    type: [String],
  },
  /** 边框右 宽度 */
  borderRightWidth: {
    type: [String],
  },
  /** 边框右 颜色 */
  borderRightColor: {
    type: [String],
  },
  /** 边框下 线样式 */
  borderBottomStyle: {
    // type: [String] as PropType<BwStyleBorderStyleEnum>,
    type: [String],
  },
  /** 边框下 宽度 */
  borderBottomWidth: {
    type: [String],
  },
  /** 边框下 颜色 */
  borderBottomColor: {
    type: [String],
  },
}

/** 圆角相关样式属性 */
export const BwStyleRadiusProps = {
  /** 圆角左上角*/
  borderTopLeftRadius: {
    type: [String],
  },
  /** 圆角右上角*/
  borderTopRightRadius: {
    type: [String],
  },
  /** 圆角左下角*/
  borderBottomLeftRadius: {
    type: [String],
  },
  /** 圆角右下角*/
  borderBottomRightRadius: {
    type: [String],
  },
}

/** 阴影相关样式属性 */
export const BwStyleShadowProps = {
  /** 颜色 */
  shadowColor: {
    type: [String],
  },
  /** x轴水平方向偏移量 */
  shadowX: {
    type: [String],
  },
  /** y轴竖直方向偏移量 */
  shadowY: {
    type: [String],
  },
  /** 阴影模糊半径 */
  shadowBlur: {
    type: [String],
  },
  /** 阴影扩展半径 */
  shadowSpread: {
    type: [String],
  },
}

/** 背景相关样式属性 */
export const BwStyleBackgroundProps = {
  /** 背景颜色 */
  backgroundColor: {
    type: [String],
  },
  /** 背景图片 */
  backgroundImage: {
    type: [String],
  },
  /** 背景定位 X轴 */
  backgroundPositionX: {
    type: [String],
  },
  /** 背景定位 Y轴 */
  backgroundPositionY: {
    type: [String],
  },
  /** 背景大小 */
  backgroundSize: {
    // type: [String] as PropType<BwStyleBackgroundSizeEnum>,
    type: [String],
  },
  /** 背景大小 宽 */
  backgroundSizeWidth: {
    type: [String],
  },
  /** 背景大小 高 */
  backgroundSizeHeight: {
    type: [String],
  },
  /** 背景平铺 */
  backgroundRepeat: {
    // type: [String] as PropType<BwStyleBackgroundRepeatEnum>,
    type: [String],
  },
  /** 背景固定 */
  backgroundAttachment: {
    // type: [String] as PropType<BwStyleBackgroundAttachmentEnum>,
    type: [String],
  },
}

/** 通用渲染样式属性 */
export const BwStyleDefaultProps = {
  ...BwStyleBaseProps,
  ...BwStyleFontProps,
  ...BwStyleFlexProps,
  ...BwStyleMarginProps,
  ...BwStylePaddingProps,
  ...BwStyleBorderProps,
  ...BwStyleRadiusProps,
  ...BwStyleShadowProps,
  ...BwStyleBackgroundProps,
}
